//
//  AppController.h
//  MusicAnalyzer
//
//  Created by jiro on 12/03/24.
//  Copyright 2012 jiro music. All rights reserved.
//

#import <Cocoa/Cocoa.h>

#import "AllGUIs.h"

#import "../Common/DeviceSystem.h"
#import "../Common/MidiSystem.h"

#import "StateSystem.h"
#import "MusicSheetView.h"
#import "GraphView.h"

#import <stack>

@class DeviceSetupWindowController;
@class ChordListView;

@interface AppController : NSWindowController
{
	DeviceSetupWindowController* deviceSetupWindowController;

	sc::MidiInterface0* midiInterface;

	stack< Command* > executedCommandStack;

	stack< Command* >* unExecutedCommandStack;

	IBOutlet MusicSheetView* musicSheetView;

	IBOutlet GraphView* graphView;

	IBOutlet ChordTableView* chordTableView;
}

@property( assign ) MusicSheetView* musicSheetView;
@property( assign ) GraphView* graphView;
@property( assign ) ChordTableView* chordTableView;

- (IBAction) openDeviceSetupWindow: (id) sender;

- (void) setMidiInterface: ( sc::MidiInterface0* ) interface;
- (void) setDeviceInfos: ( std::vector< sc::DeviceInfo* >* ) infos;

@end
